#coding:utf-8
import os

import funcall
from funcall.AbstractFunCall import funcallResultMsgBySubprocessResult
from funcall.get_current_weather_fun_call import get_current_weather_fun_call


def test1():
    work_dir ="Z:\\aiwork"
    os.chdir(work_dir) # 切换到指定目录
    with os.popen("java Hello1", 'r') as f:
        # output = f.buffer.read().decode("utf-8")
        output = f.buffer.read().decode("gbk").encode("utf-8")
    str=output
    print(str)
    print("\n")


def test2():
    work_dir ="Z:\\aiwork"
    import subprocess
    _env = dict(os.environ)  # 复制当前环境变量

    # 方案1
    # _result = subprocess.run('java Hello', env=_env, cwd=work_dir, capture_output=True, text=True)
    # output = funcallResultMsgBySubprocessResult(_result)

    # 方案3
    # _result = subprocess.Popen("java Hello",env=_env,cwd=work_dir, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    # output = _result.stdout.read().decode("gbk")  # 假设输出是 GBK 编码的，解码为字符串

    # 方案3
    _result = subprocess.Popen("java Hello",env=_env,cwd=work_dir, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,text=True)
    output = _result.stdout.read()  # 假设输出是 GBK 编码的，解码为字符串

    # output=_result.stdout.readlines()
    str=output
    print(str)
    print("\n")

def test3():
    print("java项目单独新建一个文件夹,不要放到Z:\\aiwork主目录,"
                       "在你设计好方案之后,存放到Z:\\aiwork\\programme.md 文件中,"
                       "帮你的工作进度,以及工作过程中创建的文件名和目录名都存放到 Z:\\aiwork\\step.md 文件中,"
                       "下次让你做同一个任务的时候可以调取这些信息来继续未完成的工作,"
                       "按照原先的方案和进度继续开始,"
                       "在你开始工作之前,请先检查 Z:\\aiwork\\programme.md 和 Z:\\aiwork\\step.md 文件是否存在,是否有未完成的工作,"
                       "如果有,请继续完成未完成的工作,"
                       "如果没有或者无法读取工作进度文件,则表示这是一个新的项目",)

if __name__ == '__main__':
    # test1()
    # test2()
    test3()

